#pragma once
#include <vector>
#include "IMoveable.h"
#include "ProgTimer.h"

namespace bs
{
	struct PlayerCfg;
	class Animation;
	class Game;
	class InputSniffer;

	class Player : public IMoveable, public IProgListener
	{
	public:
		Player(Game& game);
		~Player();

		virtual void OnTimeUp(int id);

		bool Init(const PlayerCfg& cfg);
		void Update(const InputSniffer& input, int elapse, float speedFactor);
		void Draw(HDC dc);

	private:
		float accX;
		bool leftDir;

		std::string bullet;
		std::string explode;
		std::string explodeSnd;

		bool fireEnable;

		Animation* anim;

		ProgTimer fireTimer;

		Game& game;
	};

}
